home *** CD-ROM | disk | FTP | other *** search
- /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Copyright (C) 1994, by WATCOM International Inc. All rights %
- % reserved. No part of this software may be reproduced or %
- % used in any form or by any means - graphic, electronic or %
- % mechanical, including photocopying, recording, taping or %
- % information storage and retrieval systems - except with the %
- % written permission of WATCOM International Inc. %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- */
-
- /*************************************************************************
- *
- * WPopupMenu -- Wrapper for the Windows 95 Popup menu control.
- *
- *
- * Events:
- *
- * Close --
- *
- * Select --
- *
- * InitPopupMenu --
- *
- *************************************************************************/
-
- #ifndef _WPOPMENU_HPP_INCLUDED
- #define _WPOPMENU_HPP_INCLUDED
-
- #ifndef _WNO_PRAGMA_PUSH
- #pragma pack(push,8);
- #pragma enum int;
- #endif
-
- #ifndef _WMENU_HPP_INCLUDED
- # include "wmenu.hpp"
- #endif
- #ifndef _WSTRING_HPP_INCLUDED
- # include "wstring.hpp"
- #endif
- #ifndef _WVECTOR_HPP_INCLUDED
- # include "wvector.hpp"
- #endif
-
- extern template WVector<WMenu>;
-
- class WWindow;
- class WPopupMenu;
-
- class WCMCLASS WPopupMenu : public WMenu {
- WDeclareSubclass( WPopupMenu, WMenu );
-
- public:
-
- /**********************************************************
- * Constructors and Destructors
- *********************************************************/
-
- WPopupMenu( const WResourceID & id,
- WModuleHandle module=_ApplicationModule,
- WBool loadAccelerators=TRUE,
- WBool appendAcceleratorName=TRUE );
-
- WPopupMenu( const WChar * text, WBool create=TRUE,
- WMenuHandle handle=NULLHMNU );
-
- ~WPopupMenu();
-
- /**********************************************************
- * Properties
- *********************************************************/
-
- /**********************************************************
- * Methods
- *********************************************************/
-
- // OnSelected
-
- virtual WBool OnSelected( WBool selected=TRUE );
-
-
- // Track
-
- virtual WBool Track( WWindow *owner,
- WPoint *initialPosition = NULL,
- WShort *selectedID=NULL,
- WBool process=TRUE );
-
- /**********************************************************
- * Others
- *********************************************************/
-
- // OnRemovedFromParent
-
- WBool OnRemovedFromParent( WMenu * parent );
-
- /**********************************************************
- * Overrides
- *********************************************************/
-
- virtual WBool SetText( const WString & text );
-
- virtual WBool Destroy();
-
- virtual WBool SetParent( WObject * parent );
-
- /**********************************************************
- * Data Members
- *********************************************************/
-
- private:
-
- WMenuHandle _loadedMenu; // menu handle of loaded menu
- WVector< WMenu > * _parents;
- };
-
- class WCMCLASS WSystemMenu : public WPopupMenu {
- WDeclareSubclass( WSystemMenu, WPopupMenu );
-
- public:
-
- /**********************************************************
- * Constructors and Destructors
- *********************************************************/
-
- WSystemMenu( WWindow *window, WMenuHandle handle );
-
- ~WSystemMenu();
-
- /**********************************************************
- * Methods
- *********************************************************/
-
- // Track
-
- virtual WBool Track( WWindow *temporaryOwner,
- WPoint *initialPosition = NULL,
- WShort *selectedID=NULL,
- WBool process=TRUE );
-
- private:
-
- WWindow *_realOwner;
- };
-
- #ifndef _WNO_PRAGMA_PUSH
- #pragma enum pop;
- #pragma pack(pop);
- #endif
-
- #endif // _WPOPMENU_HPP_INCLUDED
-
-